﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DTO;
using BUS;

namespace QuanLyHocSinh.GUI
{
    public partial class F_PhanLop : DevExpress.XtraEditors.XtraUserControl
    {
        private static int chonlop = 0;

        public F_PhanLop()
        {
            
            InitializeComponent();
        }

        private void F_PhanLop_Load(object sender, EventArgs e)
        {
            LoadDuLieu();
        }
        private void LoadDuLieu()
        {
            try
            {
                DTOHocSinh hocsinh = new DTOHocSinh();
                this.dgvHocSinh.DataSource = BUSPhanLop.DanhSachHocSinhPhanLop(hocsinh);
                this.dgvDanhSachLop.DataSource = BUSPhanLop.DanhSachLop();
                this.dgvDanhSachHocSinh.DataSource = null;
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void gvDanhSachLop_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            try
            {
                chonlop = 1;
                DTOHocSinh hocsinh = new DTOHocSinh();
                hocsinh.MaLop = gvDanhSachLop.GetRowCellValue(e.RowHandle, gvDanhSachLop.Columns["MALOP"]).ToString().Trim();
                this.dgvDanhSachHocSinh.DataSource = BUSPhanLop.DanhSachHocSinhPhanLop(hocsinh);
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void cmdQuaPhai_Click(object sender, EventArgs e)
        {
            try
            {               
                if (chonlop == 1)
                {
                    DataRow Dr = gvDanhSachLop.GetFocusedDataRow();
                    string malop = Dr["MALOP"].ToString();
                    DataTable Dtbhschualop = (DataTable)dgvHocSinh.DataSource;
                    DataRow[] Dtrhschualop = Dtbhschualop.Select("IsCheck = 'True'");
                    DTOHocSinh hocsinh = new DTOHocSinh();
                    int ketqua = 0;
                    string TenHocSinh = "";
                    if (Dtrhschualop.Length > 0)
                    {
                        if (BUSPhanLop.KiemTraSiSoTrong(Dtrhschualop.Length, malop))
                        {
                            foreach (DataRow row in Dtrhschualop)
                            {
                                hocsinh.MaHS = row[0].ToString();
                                hocsinh.MaLop = malop;
                                ketqua = BUSPhanLop.PhanLop(hocsinh);
                                TenHocSinh += row[1].ToString() + ", ";
                            }
                            LoadDuLieu();
                            XtraMessageBox.Show(string.Format("Đã phân các học sinh : {0} vào lớp : {1}", TenHocSinh.Substring(0, TenHocSinh.Length - 2), Dr["TENLOP"].ToString()), "Kết Quả", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            chonlop = 0;
                        }
                        else
                        {
                            XtraMessageBox.Show(string.Format("Số lượng học sinh của lớp {0} đã vượt số tối đa!", Dr["TENLOP"].ToString()), "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        XtraMessageBox.Show("Vui lòng chọn 1 học sinh trước khi phân lớp!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    XtraMessageBox.Show("Vui lòng chọn 1 lớp học!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void cmdQuaTrai_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable Dtbhschualop = (DataTable)dgvDanhSachHocSinh.DataSource;
                DataRow[] Dtrhschualop = Dtbhschualop.Select("IsCheck = 'True'");
                DTOHocSinh hocsinh = new DTOHocSinh();
                int ketqua = 0;
                string TenHocSinh = "";
                if (Dtrhschualop.Length > 0)
                {
                    foreach (DataRow row in Dtrhschualop)
                    {
                        hocsinh.MaHS = row[0].ToString();
                        ketqua = BUSPhanLop.PhanLop(hocsinh);
                        TenHocSinh += row[1].ToString() + ", ";
                    }
                    LoadDuLieu();
                    XtraMessageBox.Show(string.Format("Đã bỏ chọn lớp cho các học sinh : {0}", TenHocSinh.Substring(0, TenHocSinh.Length - 2)), "Kết Quả", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    chonlop = 0;            
                }
                else
                {
                    XtraMessageBox.Show("Vui lòng chọn 1 học sinh trước!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
